Steinberg::Vst Namespace Reference

All VST specific interfaces are located in Vst namespace. More...

Namespaces

namespace  InterAppAudio
namespace  PlugType
 

Component Types used as subCategories in PClassInfo2.


namespace  ViewType
 

View Types used for IEditController::createView.


namespace  LayerType
 

Layer Types used in a VST XML Representation.


namespace  CurveType
 

Curve Types used in a VST XML Representation.


namespace  Attributes
 

Attributes used to defined a Layer in a VST XML Representation.


namespace  AttributesFunction
 

Attributes Function used to defined the function of a Layer in a VST XML Representation.


namespace  AttributesStyle
 

Attributes Style associated a specific Layer Type in a VST XML Representation.


namespace  AttributesFlags
 

Attributes Flags defining a Layer in a VST XML Representation.


namespace  PresetAttributes
 

Predefined Preset Attributes.


namespace  StateType
 

Predefined StateType used for Key kStateType.


namespace  MusicalInstrument
 

Predefined Musical Instrument.


namespace  MusicalStyle
 

Predefined Musical Style.


namespace  MusicalCharacter
 

Predefined Musical Character.


namespace  SpeakerArr
 

Speaker Arrangement Definitions (SpeakerArrangement).


Data Structures

class  AudioEffect
class  Bus
class  EventBus
class  AudioBus
class  BusList
class  Component
class  ComponentBase
class  EditController
class  EditorView
class  Unit
class  ProgramList
class  ProgramListWithPitchNames
class  EditControllerEx1
class  VSTGUIEditor
class  NoteExpressionType
class  RangeNoteExpressionType
class  NoteExpressionTypeContainer
class  Parameter
class  RangeParameter
class  StringListParameter
class  ParameterContainer
class  PresetFile
class  FileStream
class  ReadOnlyBStream
class  XmlRepresentationHelper
class  SingleComponentEffect
class  IPlugProvider
class  VstTestBase
class  VstTestEnh
class  VstSuspendResumeTest
class  VstTerminateInitializeTest
class  VstScanBussesTest
class  VstScanParametersTest
class  VstMidiMappingTest
class  VstNoteExpressionTest
class  VstKeyswitchTest
class  VstEditorClassesTest
class  VstUnitInfoTest
class  VstProgramInfoTest
class  VstUnitStructureTest
class  VstProcessTest
class  VstSpeakerArrangementTest
class  VstAutomationTest
class  VstValidStateTransitionTest
class  VstInvalidStateTransitionTest
class  VstRepeatIdenticalStateTransitionTest
class  VstBusConsistencyTest
class  VstBusInvalidIndexTest
class  VstSilenceFlagsTest
class  VstSilenceProcessingTest
class  VstFlushParamTest
class  VstBusActivationTest
class  VstVariableBlockSizeTest
class  VstProcessFormatTest
class  VstCheckAudioBusArrangementTest
class  VstProcessTailTest
class  IAttributeList
 Attribute list used in IMessage and IStreamAttributes. More...
class  IStreamAttributes
 Meta attributes of a stream. More...
struct  ProcessSetup
 Audio processing setup. More...
struct  AudioBusBuffers
 Processing buffers of an audio bus. More...
struct  ProcessData
 Any data needed in audio processing. More...
class  IAudioProcessor
 Audio Processing Interface. More...
class  IAudioPresentationLatency
 Extended IAudioProcessor interface for a component. More...
struct  BusInfo
 Bus Description. More...
struct  RoutingInfo
 Routing Information. More...
class  IComponent
 Component Base Interface. More...
class  IComponentHandler3
 Extended Host callback interface IComponentHandler3 for an edit controller. More...
class  IContextMenuTarget
 Context Menu Item Target Interface. More...
class  IContextMenu
 Context Menu Interface. More...
struct  ParameterInfo
 Controller Parameter Info. More...
class  IComponentHandler
 Host callback interface for an edit controller. More...
class  IComponentHandler2
 Extended Host callback interface IComponentHandler2 for an edit controller. More...
class  IEditController
 Edit controller component interface. More...
class  IEditController2
 Edit controller component interface extension. More...
class  IMidiMapping
 MIDI Mapping Interface. More...
class  IEditControllerHostEditing
 Parameter Editing from Host. More...
struct  NoteOnEvent
 Note-on event specific data. More...
struct  NoteOffEvent
 Note-off event specific data. More...
struct  DataEvent
 Data event specific data. More...
struct  PolyPressureEvent
 PolyPressure event specific data. More...
struct  ChordEvent
 Chord event specific data. More...
struct  ScaleEvent
 Scale event specific data. More...
struct  Event
 Event. More...
class  IEventList
 List of events to process. More...
class  IHostApplication
 Basic Host Callback Interface. More...
class  IVst3ToVst2Wrapper
 VST 3 to VST 2 Wrapper Interface. More...
class  IVst3ToAUWrapper
 VST 3 to AU Wrapper Interface. More...
class  IInterAppAudioHost
 Inter-App Audio host Interface. More...
class  IInterAppAudioConnectionNotification
 Extended IEditController interface for Inter-App Audio connnection state change notifications ???

More...
class  IInterAppAudioPresetManager
class  IMessage
 Private Plug-in message. More...
class  IConnectionPoint
 Connect a component with another one. More...
struct  NoteExpressionValueDescription
 Description of a Note Expression Type This structure is part of the NoteExpressionTypeInfo structure, it describes for given NoteExpressionTypeID its default value (for example 0.5 for a kTuningTypeID (kIsBipolar: centered)), its minimum and maximum (for predefined NoteExpressionTypeID the full range is predefined too) and a stepCount when the given NoteExpressionTypeID is limited to discrete values (like on/off state). More...
struct  NoteExpressionValueEvent
 Note Expression Value event. More...
struct  NoteExpressionTextEvent
 Note Expression Text event. More...
struct  NoteExpressionTypeInfo
 NoteExpressionTypeInfo is the structure describing a note expression supported by the Plug-in. More...
class  INoteExpressionController
 Extended IEditController interface for note expression event support. More...
struct  KeyswitchInfo
 KeyswitchInfo is the structure describing a key switch This structure is used by the method IKeyswitchController::getKeyswitchInfo. More...
class  IKeyswitchController
 Extended IEditController interface for key switches support. More...
class  IParamValueQueue
 Queue of changes for a specific parameter. More...
class  IParameterChanges
 All parameter changes of a processing block. More...
class  IParameterFinder
 Extension for IPlugView to find view parameters (lookup value under mouse support). More...
struct  FrameRate
 Frame Rate. More...
struct  Chord
 Description of a chord. More...
struct  ProcessContext
 Audio processing context. More...
struct  RepresentationInfo
 RepresentationInfo is the structure describing a representation This structure is used in the function. More...
class  IXmlRepresentationController
 Extended IEditController interface for a component. More...
struct  UnitInfo
 Basic Unit Description. More...
struct  ProgramListInfo
 Basic Program List Description. More...
class  IUnitHandler
 Host callback for unit support. More...
class  IUnitInfo
 Edit controller extension to describe the Plug-in structure. More...
class  IProgramListData
 Component extension to access program list data. More...
class  IUnitData
 Component extension to access unit data. More...

Typedefs

typedef int32 KnobMode
 Knob Mode.
typedef uint32 NoteExpressionTypeID
typedef double NoteExpressionValue
typedef uint32 KeyswitchTypeID
typedef char16 TChar
 UTF-16 character.
typedef TChar String128 [128]
 128 character UTF-16 string
typedef const char8CString
 C-String.
typedef int32 MediaType
 media type (audio/event)
typedef int32 BusDirection
 bus direction (in/out)
typedef int32 BusType
 bus type (main/aux)
typedef int32 IoMode
 I/O mode.
typedef int32 UnitID
 unit identifier
typedef double ParamValue
 parameter value type
typedef uint32 ParamID
 parameter identifier
typedef int32 ProgramListID
 program list identifier
typedef int16 CtrlNumber
 MIDI controller number (see ControllerNumbers for allowed values).
typedef double TQuarterNotes
 time expressed in quarter notes
typedef int64 TSamples
 time expressed in audio samples
typedef float Sample32
 32-bit precision audio sample
typedef double Sample64
 64-bit precision audio sample
typedef double SampleRate
 sample rate
typedef uint64 SpeakerArrangement
 Bitset of speakers.
typedef uint64 Speaker
 Bit for one speaker.

Enumerations

enum  ComponentFlags { kDistributable = 1 << 0, kSimpleModeSupported = 1 << 1 }
 

Component Flags used as classFlags in PClassInfo2.

More...
enum  SymbolicSampleSizes { kSample32, kSample64 }
 

Symbolic sample size.

More...
enum  ProcessModes { kRealtime, kPrefetch, kOffline }
 

Processing mode informs the Plug-in about the context and at which frequency the process call is called.

More...
enum  TailEnum { kNoTail = 0, kInfiniteTail = kMaxInt32u }
 

Tail enum.

More...
enum  MediaTypes { kAudio = 0, kEvent, kNumMediaTypes }
 

Bus media types.

More...
enum  BusDirections { kInput = 0, kOutput }
 

Bus directions.

More...
enum  BusTypes { kMain = 0, kAux }
 

Bus types.

More...
enum  IoModes { kSimple = 0, kAdvanced, kOfflineProcessing }
 

I/O modes.

More...
enum  RestartFlags {
  kReloadComponent = 1 << 0, kIoChanged = 1 << 1, kParamValuesChanged = 1 << 2, kLatencyChanged = 1 << 3,
  kParamTitlesChanged = 1 << 4, kMidiCCAssignmentChanged = 1 << 5, kNoteExpressionChanged = 1 << 6, kIoTitlesChanged = 1 << 7
}
 

Flags used for IComponentHandler::restartComponent.

More...
enum  KnobModes { kCircularMode = 0, kRelativCircularMode, kLinearMode }
 

Knob Mode.

More...
enum  ControllerNumbers {
  kCtrlBankSelectMSB = 0, kCtrlModWheel = 1, kCtrlBreath = 2, kCtrlFoot = 4,
  kCtrlPortaTime = 5, kCtrlDataEntryMSB = 6, kCtrlVolume = 7, kCtrlBalance = 8,
  kCtrlPan = 10, kCtrlExpression = 11, kCtrlEffect1 = 12, kCtrlEffect2 = 13,
  kCtrlGPC1 = 16, kCtrlGPC2 = 17, kCtrlGPC3 = 18, kCtrlGPC4 = 19,
  kCtrlBankSelectLSB = 32, kCtrlDataEntryLSB = 38, kCtrlSustainOnOff = 64, kCtrlPortaOnOff = 65,
  kCtrlSustenutoOnOff = 66, kCtrlSoftPedalOnOff = 67, kCtrlLegatoFootSwOnOff = 68, kCtrlHold2OnOff = 69,
  kCtrlSoundVariation = 70, kCtrlFilterCutoff = 71, kCtrlReleaseTime = 72, kCtrlAttackTime = 73,
  kCtrlFilterResonance = 74, kCtrlDecayTime = 75, kCtrlVibratoRate = 76, kCtrlVibratoDepth = 77,
  kCtrlVibratoDelay = 78, kCtrlSoundCtrler10 = 79, kCtrlGPC5 = 80, kCtrlGPC6 = 81,
  kCtrlGPC7 = 82, kCtrlGPC8 = 83, kCtrlPortaControl = 84, kCtrlEff1Depth = 91,
  kCtrlEff2Depth = 92, kCtrlEff3Depth = 93, kCtrlEff4Depth = 94, kCtrlEff5Depth = 95,
  kCtrlDataIncrement = 96, kCtrlDataDecrement = 97, kCtrlNRPNSelectLSB = 98, kCtrlNRPNSelectMSB = 99,
  kCtrlRPNSelectLSB = 100, kCtrlRPNSelectMSB = 101, kCtrlAllSoundsOff = 120, kCtrlResetAllCtrlers = 121,
  kCtrlLocalCtrlOnOff = 122, kCtrlAllNotesOff = 123, kCtrlOmniModeOff = 124, kCtrlOmniModeOn = 125,
  kCtrlPolyModeOnOff = 126, kCtrlPolyModeOn = 127, kAfterTouch = 128, kPitchBend,
  kCountCtrlNumber
}
 

Controller Numbers (MIDI).

More...
enum  NoteExpressionTypeIDs {
  kVolumeTypeID = 0, kPanTypeID, kTuningTypeID, kVibratoTypeID,
  kExpressionTypeID, kBrightnessTypeID, kTextTypeID, kPhonemeTypeID,
  kCustomStart = 100000
}
 

NoteExpressionTypeIDs describes the type of the note expression.

More...
enum  KeyswitchTypeIDs { kNoteOnKeyswitchTypeID = 0, kOnTheFlyKeyswitchTypeID, kOnReleaseKeyswitchTypeID, kKeyRangeTypeID }
 

KeyswitchTypeIDs describes the type of a key switch.

More...

Functions

IMessageallocateMessage (IHostApplication *host)

Variables

const int32 kDefaultFactoryFlags = PFactoryInfo::kUnicode
 Standard value for PFactoryInfo::flags.
const Speaker kSpeakerL = 1 << 0
 Speaker Definitions.
const Speaker kSpeakerR = 1 << 1
 Right (R).
const Speaker kSpeakerC = 1 << 2
 Center (C).
const Speaker kSpeakerLfe = 1 << 3
 Subbass (Lfe).
const Speaker kSpeakerLs = 1 << 4
 Left Surround (Ls).
const Speaker kSpeakerRs = 1 << 5
 Right Surround (Rs).
const Speaker kSpeakerLc = 1 << 6
 Left of Center (Lc).
const Speaker kSpeakerRc = 1 << 7
 Right of Center (Rc).
const Speaker kSpeakerS = 1 << 8
 Surround (S).
const Speaker kSpeakerCs = kSpeakerS
 Center of Surround (Cs) = Surround (S).
const Speaker kSpeakerSl = 1 << 9
 Side Left (Sl).
const Speaker kSpeakerSr = 1 << 10
 Side Right (Sr).
const Speaker kSpeakerTm = 1 << 11
 Top Middle - Center Over-head (Tm).
const Speaker kSpeakerTfl = 1 << 12
 Top Front Left (Tfl).
const Speaker kSpeakerTfc = 1 << 13
 Top Front Center (Tfc).
const Speaker kSpeakerTfr = 1 << 14
 Top Front Right (Tfr).
const Speaker kSpeakerTrl = 1 << 15
 Top Rear Left (Trl).
const Speaker kSpeakerTrc = 1 << 16
 Top Rear Center (Trc).
const Speaker kSpeakerTrr = 1 << 17
 Top Rear Right (Trr).
const Speaker kSpeakerLfe2 = 1 << 18
 Subbass 2 (Lfe2).
const Speaker kSpeakerM = 1 << 19
 Mono (M).
const Speaker kSpeakerW = 1 << 20
 B-Format W.
const Speaker kSpeakerX = 1 << 21
 B-Format X.
const Speaker kSpeakerY = 1 << 22
 B-Format Y.
const Speaker kSpeakerZ = 1 << 23
 B-Format Z.
const Speaker kSpeakerTsl = 1 << 24
 Top Side Left (Tsl).
const Speaker kSpeakerTsr = 1 << 25
 Top Side Right (Tsr).
const Speaker kSpeakerLcs = 1 << 26
 Left of Center Surround (Lcs).
const Speaker kSpeakerRcs = 1 << 27
 Right of Center Surround (Rcs).
const Speaker kSpeakerBfl = 1 << 28
 Bottom Front Left (Bfl).
const Speaker kSpeakerBfc = 1 << 29
 Bottom Front Center (Bfc).
const Speaker kSpeakerBfr = 1 << 30
 Bottom Front Right (Bfr).

Detailed Description

All VST specific interfaces are located in Vst namespace.


Typedef Documentation

typedef int32 KnobMode

Knob Mode.

typedef double NoteExpressionValue

Enumeration Type Documentation

Component Flags used as classFlags in PClassInfo2.

Enumerator:
kDistributable 

Component can be run on remote computer.

kSimpleModeSupported 

Component supports simple IO mode (or works in simple mode anyway) see The Simple Mode.

Symbolic sample size.

See also:
ProcessSetup, ProcessData
Enumerator:
kSample32 

32-bit precision

kSample64 

64-bit precision

Processing mode informs the Plug-in about the context and at which frequency the process call is called.

VST3 defines 3 modes:

  • kRealtime: each process call is called at a realtime frequency (defined by [numSamples of ProcessData] / samplerate). The Plug-in should always try to process as fast as possible in order to let enough time slice to other Plug-ins.
  • kPrefetch: each process call could be called at a variable frequency (jitter, slower / faster than realtime), the Plug-in should process at the same quality level than realtime, Plug-in must not slow down to realtime (e.g. disk streaming)! The host should avoid to process in kPrefetch mode such sampler based Plug-in.
  • kOffline: each process call could be faster than realtime or slower, higher quality than realtime could be used. Plug-ins using disk streaming should be sure that they have enough time in the process call for streaming, if needed by slowing down to realtime or slower.

Note about Process Modes switching: -Switching between kRealtime and kPrefetch process modes are done in realtime thread without need of calling IAudioProcessor::setupProcessing, the Plug-in should check in process call the member processMode of ProcessData in order to know in which mode it is processed. -Switching between kRealtime (or kPrefetch) and kOffline requires that the host calls IAudioProcessor::setupProcessing in order to inform the Plug-in about this mode change.

See also:
ProcessSetup, ProcessData
Enumerator:
kRealtime 

realtime processing

kPrefetch 

prefetch processing

kOffline 

offline processing

enum TailEnum

Tail enum.

See also:
IAudioProcessor::getTailSamples
Enumerator:
kNoTail 

to be returned by getTailSamples when no tail is wanted

kInfiniteTail 

to be returned by getTailSamples when infinite tail is wanted

enum IoModes

I/O modes.

Enumerator:
kSimple 

1:1 Input / Output. Only used for Instruments. See The Simple Mode

kAdvanced 

n:m Input / Output. Only used for Instruments.

kOfflineProcessing 

Plug-in used in an offline processing context.

Flags used for IComponentHandler::restartComponent.

Enumerator:
kReloadComponent 

The Component should be reloaded.

kIoChanged 

Input and/or Output Bus configuration has changed.

kParamValuesChanged 

Multiple parameter values have changed.

(as result of a program change for example)

kLatencyChanged 

Latency has changed (IAudioProcessor.getLatencySamples).

kParamTitlesChanged 

Parameter titles or default values or flags have changed.

kMidiCCAssignmentChanged 

MIDI Controller Assignments have changed [SDK 3.0.1].

kNoteExpressionChanged 

Note Expression has changed (info, count...) [SDK 3.5.0].

kIoTitlesChanged 

Input and/or Output bus titles have changed [SDK 3.5.0].

enum KnobModes

Knob Mode.

Enumerator:
kCircularMode 

Circular with jump to clicked position.

kRelativCircularMode 

Circular without jump to clicked position.

kLinearMode 

Linear: depending on vertical movement.

Controller Numbers (MIDI).

Enumerator:
kCtrlBankSelectMSB 

Bank Select MSB.

kCtrlModWheel 

Modulation Wheel.

kCtrlBreath 

Breath controller.

kCtrlFoot 

Foot Controller.

kCtrlPortaTime 

Portamento Time.

kCtrlDataEntryMSB 

Data Entry MSB.

kCtrlVolume 

Channel Volume (formerly Main Volume).

kCtrlBalance 

Balance.

kCtrlPan 

Pan.

kCtrlExpression 

Expression.

kCtrlEffect1 

Effect Control 1.

kCtrlEffect2 

Effect Control 2.

kCtrlGPC1 

General Purpose Controller #1.

kCtrlGPC2 

General Purpose Controller #2.

kCtrlGPC3 

General Purpose Controller #3.

kCtrlGPC4 

General Purpose Controller #4.

kCtrlBankSelectLSB 

Bank Select LSB.

kCtrlDataEntryLSB 

Data Entry LSB.

kCtrlSustainOnOff 

Damper Pedal On/Off (Sustain).

kCtrlPortaOnOff 

Portamento On/Off.

kCtrlSustenutoOnOff 

Sustenuto On/Off.

kCtrlSoftPedalOnOff 

Soft Pedal On/Off.

kCtrlLegatoFootSwOnOff 

Legato Footswitch On/Off.

kCtrlHold2OnOff 

Hold 2 On/Off.

kCtrlSoundVariation 

Sound Variation.

kCtrlFilterCutoff 

Filter Cutoff (Timbre/Harmonic Intensity).

kCtrlReleaseTime 

Release Time.

kCtrlAttackTime 

Attack Time.

kCtrlFilterResonance 

Filter Resonance (Brightness).

kCtrlDecayTime 

Decay Time.

kCtrlVibratoRate 

Vibrato Rate.

kCtrlVibratoDepth 

Vibrato Depth.

kCtrlVibratoDelay 

Vibrato Delay.

kCtrlSoundCtrler10 

undefined

kCtrlGPC5 

General Purpose Controller #5.

kCtrlGPC6 

General Purpose Controller #6.

kCtrlGPC7 

General Purpose Controller #7.

kCtrlGPC8 

General Purpose Controller #8.

kCtrlPortaControl 

Portamento Control.

kCtrlEff1Depth 

Effect 1 Depth (Reverb Send Level).

kCtrlEff2Depth 

Effect 2 Depth.

kCtrlEff3Depth 

Effect 3 Depth (Chorus Send Level).

kCtrlEff4Depth 

Effect 4 Depth (Delay/Variation Level).

kCtrlEff5Depth 

Effect 5 Depth.

kCtrlDataIncrement 

Data Increment (+1).

kCtrlDataDecrement 

Data Decrement (-1).

kCtrlNRPNSelectLSB 

NRPN Select LSB.

kCtrlNRPNSelectMSB 

NRPN Select MSB.

kCtrlRPNSelectLSB 

RPN Select LSB.

kCtrlRPNSelectMSB 

RPN Select MSB.

kCtrlAllSoundsOff 

All Sounds Off.

kCtrlResetAllCtrlers 

Reset All Controllers.

kCtrlLocalCtrlOnOff 

Local Control On/Off.

kCtrlAllNotesOff 

All Notes Off.

kCtrlOmniModeOff 

Omni Mode Off + All Notes Off.

kCtrlOmniModeOn 

Omni Mode On + All Notes Off.

kCtrlPolyModeOnOff 

Poly Mode On/Off + All Sounds Off.

kCtrlPolyModeOn 

Poly Mode On.

kAfterTouch 

After Touch.

kPitchBend 

Pitch Bend.

kCountCtrlNumber 

Count of Controller Number.

NoteExpressionTypeIDs describes the type of the note expression.

VST predefines some types like volume, pan, tuning by defining their ranges and curves. Used by NoteExpressionEvent::typeId and NoteExpressionTypeID::typeId

See also:
NoteExpressionTypeInfo
Enumerator:
kVolumeTypeID 

Volume, plain range [0 = -oo , 0.25 = 0dB, 0.5 = +6dB, 1 = +12dB]: plain = 20 * log (4 * norm).

kPanTypeID 

Panning (L-R), plain range [0 = left, 0.5 = center, 1 = right].

kTuningTypeID 

Tuning, plain range [0 = -120.0 (ten octaves down), 0.5 none, 1 = +120.0 (ten octaves up)].

plain = 240 * (norm - 0.5) and norm = plain / 240 + 0.5 oneOctave is 12.0 / 240.0; oneHalfTune = 1.0 / 240.0;

kVibratoTypeID 

Vibrato.

kExpressionTypeID 

Expression.

kBrightnessTypeID 

Brightness.

kTextTypeID 

TODO:.

kPhonemeTypeID 

TODO:.

kCustomStart 

custom note change type ids must start from here

KeyswitchTypeIDs describes the type of a key switch.

See also:
KeyswitchInfo
Enumerator:
kNoteOnKeyswitchTypeID 

press before noteOn is played

kOnTheFlyKeyswitchTypeID 

press while noteOn is played

kOnReleaseKeyswitchTypeID 

press before entering release

kKeyRangeTypeID 

key should be maintained pressed for playing


Function Documentation

IMessage* Steinberg::Vst::allocateMessage ( IHostApplication *  host  )  [inline]

Variable Documentation

Standard value for PFactoryInfo::flags.

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines
Empty

Copyright ©2013 Steinberg Media Technologies GmbH. All Rights Reserved.